package com.itheima.reggie.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * @description:通用返回结果，服务器端响应的数据最终都会封装成此对象
 * @author: yanhongwei
 * @date: 2023/5/13 16:37
 * @param:
 * @return:
 **/
@Data
@ApiModel("返回结果")
public class R<T> implements Serializable {

    @ApiModelProperty("编码")
    private Integer code;//编码：1成功，0和其他数字为失败

    private String msg;//错误信息

    private T data;//数据

    private Map map=new HashMap<>();//动态数据

    public static <T>R<T> success(T object){
        R<T> r=new R<T>();
        r.data=object;
        r.code=1;
        return r;
    }

    public static <T>R<T> error(String msg){
        R<T> r=new R<T>();
        r.msg=msg;
        r.code=0;
        return r;
    }

    public R<T> add(String key,Object value){
        this.map.put(key,value);
        return this;
    }

}
